/**
 * 发送POST异步请求
 * @param {String}   url       请求地址
 * @param {String}   params    请求参数
 * @param {Function} callback  回调函数
 * @param {Object}   headers   请求头
 * @param {Stirng}   dataType  返回的数据类型
 */
 function post(url, params, callback, headers = {}, dataType='json')
 {

     const xhr = new XMLHttpRequest

     xhr.onreadystatechange = () => {

         if (xhr.readyState === 4)
         {

             if (xhr.status === 200)
             {
 
                 let res = xhr.responseText
                 switch (dataType) {
                     case 'json':
                         res = JSON.parse(res)
                         break;
                 
                     default:
                         break;
                 }

                 callback(res)

             } else {
                 console.log('状态错误：', xhr.status);
             }
         }
     }

     xhr.open('post', url)
     
     xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded')
     for (let key in headers)
     {
         xhr.setRequestHeader(key, headers[key])
     }

     xhr.send(params)
 }
 